package one.stand.service;

import one.stand.model.CompanyCustomerLable;
import one.stand.model.ResultModel;
import one.stand.request.CompanyCustomerLableRequest;
import one.stand.response.CompanyCustomerLableResponse;

import java.util.List;

/**
 * @author Administrator
 */
public interface CompanyCustomerLableService {
    /**
     * 根父类ID
     */
    Integer ROOT_PARENT_ID = 0;
    /**
     * 系统标签 的企业ID
     */
    Integer SYS_COMPANY_ID = 0;

    /**
     * 标签类型：0 客户
     */
    int TYPE_CUSTOMER = 0;
    /**
     * 标签类型：1 企业
     */
    int TYPE_COMPANY = 1;

    /**
     * 添加标签
     */
    Integer addLable(CompanyCustomerLable lable);

    /**
     * 删除标签
     * 如果为父标签，则删除其下所有子标签
     */
    void delLable(Integer lableId);

    /**
     * 修改标签
     */
    void updLable(Integer lableId, String lableName, String lableColor, Integer parentId);

    /**
     * 获取客户标签树
     */
    ResultModel<List<CompanyCustomerLableResponse>> getTree(CompanyCustomerLableRequest request);

    /**
     * 获取所有标签
     */
    List<CompanyCustomerLable> getLabels(int type, Integer typeId);
}
